package org.coopac.controller.util;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import org.coopac.service.IUbigeoService;

@ManagedBean(name="ubigeo")
//RequestScoped
@SessionScoped
public class UbigeoController {
	
	@SuppressWarnings("unused")
	private List<SelectItem>  listaDepartamento,
							  listaProvincia,
							  listaDistrito;
	
	private Integer idDepartamento,
					idProvincia,
					idDistrito;
	
	@ManagedProperty(value="#{ubigeoService}")
	IUbigeoService ubigeo;

	public UbigeoController(){
		listaDepartamento = new ArrayList<SelectItem>();
		listaProvincia  = new ArrayList<SelectItem>();
		listaDistrito  = new ArrayList<SelectItem>();
		idDepartamento = 12;
		idProvincia = 1208;
		idDistrito = 120804;
	}
	
	public List<SelectItem> getListaDepartamento() {
		listaProvincia.clear();
		listaDistrito.clear();
		return getUbigeo().listaUbigeo(0) ;
	}

	public void setListaDepartamento(List<SelectItem> listaDepartamento) {
		this.listaDepartamento = listaDepartamento;
	}

	public List<SelectItem> getListaProvincia() {
		listaDistrito.clear();
		return getUbigeo().listaUbigeo(idDepartamento);
	}

	public void setListaProvincia(List<SelectItem> listaProvincia) {
		this.listaProvincia = listaProvincia;
	}

	public List<SelectItem> getListaDistrito() {		
		return getUbigeo().listaUbigeo(idProvincia);
	}

	public void setListaDistrito(List<SelectItem> listaDistrito) {
		this.listaDistrito = listaDistrito;
	}

	public Integer getIdDepartamento() {
		return idDepartamento;
	}

	public void setIdDepartamento(Integer idDepartamento) {
		this.idDepartamento = idDepartamento;
	}

	public Integer getIdProvincia() {
		return idProvincia;
	}

	public void setIdProvincia(Integer idProvincia) {
		this.idProvincia = idProvincia;
	}

	public Integer getIdDistrito() {
		return idDistrito;
	}

	public void setIdDistrito(Integer idDistrito) {
		this.idDistrito = idDistrito;
	}

	public IUbigeoService getUbigeo() {
		return ubigeo;
	}

	public void setUbigeo(IUbigeoService ubigeo) {
		this.ubigeo = ubigeo;
	}
	
	public void limpiarCampos(ActionEvent event){
		setIdDepartamento(12);
		setIdProvincia(1208);
		setIdDistrito(120804);
	}
	
}
